package br.com.sig.cadastro.fretista.business.model.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

import br.com.sig.business.model.entity.BaseEntity;
import br.com.sig.cadastro.fretista.business.model.enumeration.TipoDePagamento;
import br.com.sig.cadastro.pessoas.business.model.entity.PessoaFisica;
import br.com.sig.financeiro.business.model.enumeration.FormaDePagamento;

@Entity
@Table(schema="sig_cadastro", name="fretista")
public class Fretista extends BaseEntity {

	private static final long serialVersionUID = -1985157306274944730L;
	
	private PessoaFisica pessoaFisica;
	private String placa;
	private FormaDePagamento formaDePagamento;
	private TipoDePagamento tipoDePagamento;

	@NotNull
	@OneToOne
	@JoinColumn(nullable = false)
	public PessoaFisica getPessoaFisica() {
		return pessoaFisica;
	}

	public void setPessoaFisica(PessoaFisica pessoaFisica) {
		this.pessoaFisica = pessoaFisica;
	}	
	
	@Column(name = "placa")
	public String getPlaca() {
		return placa;
	}
	
	public void setPlaca(String placa) {
		this.placa = placa;
	}
	
	@NotNull
	@Column(name = "forma_pagamento", nullable = false)
	@Enumerated(EnumType.STRING)
	public FormaDePagamento getFormaDePagamento() {
		return formaDePagamento;
	}

	public void setFormaDePagamento(FormaDePagamento formaDePagamento) {
		this.formaDePagamento = formaDePagamento;
	}

	@NotNull
	@Column(name = "tipo_pagamento", nullable = false)
	@Enumerated(EnumType.STRING)	
	public TipoDePagamento getTipoDePagamento() {
		return tipoDePagamento;
	}

	public void setTipoDePagamento(TipoDePagamento tipoDePagamento) {
		this.tipoDePagamento = tipoDePagamento;
	}
}